package org.cqupt.differentFile;

import java.util.List;

/**
 * 比较两个war文件的异同
 * @author liuzijie@meilele.com
 * @version $Id: Compare.java, v 0.1 2015年12月28日 上午9:57:06 liuzijie@meilele.com Exp $
 */
public class Compare {

    /**
     * 
     * @param args
     * @throws Exception
     */
    public static void main(String[] args) throws Exception {

        //添加help注释
        if ("--help".equals(args[0])) {
            printHelp();
            return;
        }
        String oldwarPath = null;
        String newwarPath = null;
        boolean unzip = false;
        if ("-w".equals(args[0])) {
            //设置要比较的2个war包
            oldwarPath = args[1];
            newwarPath = args[2];
            unzip = true;
        } else {
            oldwarPath = args[0];
            newwarPath = args[1];
        }

        //设置不需要比较的文件，不需要比较的文件在比较是会自动跳过
        List<String> blackListPath = BlackListReader.read("blackList");
        //构建比较器
        ProgressDifference pd = new ProgressDifference();
        //比较文件集合，并且获取返回结果
        DiffResult dr = pd.progressMain(oldwarPath, newwarPath, blackListPath, unzip);
        System.out.println("不同文件列表：");
        for (String str : dr.getDifferentFiles()) {
            System.out.println(str);
        }
        System.out.println("新增文件列表：");
        for (String str : dr.getNewFiles()) {
            System.out.println(str);
        }
        System.out.println("缺失文件列表：");
        for (String str : dr.getMissingFiles()) {
            System.out.println(str);
        }
    }

    public static void printHelp() {
        System.out.println("\t -w \t 是否需要解压文件");
    }

}
